I saw the following message when I created or destroyed two bridges by
using network-bridge script at same time. Of course names of the
bridges are different. But, a temporal name "tmpbridge" is used by
the script to create or destroy the bridges. I think that the message
was shown by "tmpbridge".
SIOCSIFNAME: File exists
This patch avoids race condition when creating or destroying the
bridges.
Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
dir=$(dirname "$0")
+. "$dir/logging.sh"
. "$dir/xen-script-common.sh"
. "$dir/xen-network-common.sh"
+. "$dir/locking.sh"
findCommand "$@"
evalVariables "$@"
return
fi
+ claim_lock "network-bridge"
+
create_bridge ${tdev}
preiftransfer ${netdev}
if [ ${antispoof} = 'yes' ] ; then
antispoofing
fi
+
+ release_lock "network-bridge"
}
op_stop () {
return
fi
+ claim_lock "network-bridge"
+
transfer_addrs ${bridge} ${pdev}
if ! ifdown ${bridge}; then
get_ip_info ${bridge}
do_ifup ${netdev}
brctl delbr ${tdev}
+
+ release_lock "network-bridge"
}
# adds $dev to $bridge but waits for $dev to be in running state first